package chapter05

/**
  * create by unseRdoG on  2021-05-29  21:47
  */
object Test03_FunctionParameter {

  def main(args: Array[String]): Unit = {
    //(1) 可变参数
    /*
    *    java中的可变参数：...  例如 String... args  实质底层是一个数组
    *    scala 中的可变参数： *
    * */
    def f1(str: String*): Unit = {
      println(str)
    }

    f1()
    f1("aaa")
    f1("a", "b", "c")


    // (2) 如果参数列表中存在多个参数，那么 可变参数要 要放在参数列表的最后
    def f2(str1: String, str2: String*): Unit = {
    }

    //(3) 参数的默认值
    def f3(name: String = "Alice") = {
      println(name)
    }

    /**
      * bob
      * Alice
      **/
    f3("bob")
    f3()


    //(4) 带名参数
    def f4(name: String = "Peter",age: Int): Unit ={
      println(s"name is ${name} and age is ${age}")
    }

    f4("alice",18)
    // 可以打算传参的顺序
    f4(age = 18,name = "alice")
    f4(age = 25)
  }
}
